package com.designpatterns.singleton;

/**
 * 
 * @author xiewenyu
 *
 * 使用内部类维护单例单例的实例,当StaticSingleton被加载时，其内部类并不会初始化，故可以确保当StaticSingleton类被JVM加载时，不会初始化单例类，
 * 而当getInstance方法调用时，才会加载SignletonHolder类，从而初始化instance。
 * 
 * 使用内部类的方式实现单例，既可以做到延迟加载，又不必使用synchronized关键字。
 * 
 */
public class StaticSingleton {

	private StaticSingleton() {

	}

	private static class SignletonHolder {
		private static StaticSingleton instance;
	}

	public static StaticSingleton getInstance() {
		return SignletonHolder.instance;
	}
}
